﻿using System.Collections.Generic;

namespace ModulesToolkit.Membership.Views
{
    using ModulesToolkit.DataContracts;
    using ModulesToolkit.DataContracts.Membership;

    public interface IGroupsListView
    {
        #region Properties

        int EditingId
        {
            get;
            set;
        }

        GroupDto GroupDto
        {
            get;
            set;
        }

        GroupMemberDtoSearchCriteria GroupMembersSearchCriteria
        {
            get;
        }
        GroupDtoSearchCriteria SearchCriteria
        {
            get;
        }
        MemberDtoSearchCriteria MembersSearchCriteria { get; }
        RolesSearchCriteria RolesSearchCriteria { get; }
        bool IsValid { get; }


        #endregion Properties

        #region Methods

        void FillGroupMembers(EntitySearchResult<GroupMemberDto> groupMembers);

        void FillGroupsList(EntitySearchResult<GroupDto> entitySearchResult);

        void FillMembers(EntitySearchResult<MemberDto> members);

        void FillRolesList(EntitySearchResult<Role> roles);

        void HideDetailsPopup();

        void ShowDetailsPopup();

        IEnumerable<int> GetCurrentSelectedRoles();

        #endregion Methods
    }
}